#-*- codeing = utf-8 -*-
#@Time : 2020/10/30 14:35
#@Author : 阳某
#@File : 05.python绘制饼图分析北京天气.py
#@Software : PyCharm


'''
Python绘制饼图分析北京天气
饼图，是一个划分为几个扇形的圆形统计图表，能够直接以图形的方式直接显示各个组成部分所占比例

目的：查看2019年北京天气数据，使用饼图查看天气、风向、空气质量的数据对比
'''

from pyecharts import options as opts
from pyecharts.charts import Pie
# 编写函数-可以创建一个pyecharts饼图对象

def create_pie(datas,title) -> Pie:
    """ 创建饼图对象
    文档地址：https://pyecharts.org/#/zh-cn/basic_charts?id=pie%ef%bc%9a%e9%a5%bc%e5%9b%be
    @param datas: 数据，形式为[('晴', 115), ('多云', 78), ('晴~多云', 39)]
    @param title: 图表的标题
    """
    pie = Pie()
    pie.add('',datas)
    pie.set_global_opts(
        title_opts=opts.TitleOpts(title=title)
        ,legend_opts=opts.LegendOpts(pos_right='right')
    )
    pie.set_series_opts(label_opts=opts.LabelOpts(formatter='{b}:{b}:{d}%'))
    return pie

# 读取北京天气2019年数据
import pandas as pd
df = pd.read_csv('./datas/beijing_tianqi/beijing_tianqi_2019.csv')
print(df.head())

# 绘制饼图查看天气类型对比
df_tianqi = df.groupby("tianqi").size().sort_values(ascending=False)
print(df_tianqi)
datas = list(zip(df_tianqi.index.to_list(), df_tianqi.to_list()))
print(datas)
pie = create_pie(datas, "饼图-天气对比")
pie.render_notebook()

# 4. 绘制饼图查看风向数据比例对比
print(df.head())
df_fengxiang = df.groupby("fengxiang").size().sort_values(ascending=False)
datas = list(zip(df_fengxiang.index.to_list(), df_fengxiang.to_list()))
pie = create_pie(datas, "饼图-风向")
pie.render_notebook()

# 5. 绘制饼图查看空气质量对比
print(df.head())
df_aqiInfo = df.groupby("aqiInfo").size().sort_values(ascending=False)
datas = list(zip(df_aqiInfo.index.to_list(), df_aqiInfo.to_list()))
pie = create_pie(datas, "饼图-空气质量")
pie.render_notebook()